Software applications on modern computing devices can be very visually compelling things. Long past are simple green characters on a blank, black background. Even business applications now implement graphical user interfaces that include beautiful selectable controls, extensive coloring and shading, and even animating display elements, such as buttons or other visible elements that move around the screen, become updated with new data and graphics, and otherwise perform all sorts of movements and changes that make a piece of software more compelling for a user.
Such animations can often involving moving multiple objects simultaneously and in complex ways in which the objects may interact with each other—not just moving a single item from point X to point Y. As a very simple example, consider the addition into the middle of a display contacts list, which may require moving items on each side of the insertion outward, and then moving or fading the new contact in. Each of these motions needs to be choreographed by a software developer in a manner that is natural and understandable to the user and to the developer.